home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
amok_lha
/
amok71.lha
/
ROM20
/
ROM20.dok
< prev
next >
Wrap
Text File
|
1993-08-15
|
26KB
|
743 lines
ROM20 V1.0 - ein leistungsfähiger Tischrechner für den Amiga
----------------------------------------------------------------
Zuerst einige Merkmale in Stichworten:
- Das Programm ist vollständig in OBERON programmiert.
- Es läuft auf allen AMIGA-Modellen unter KS1.3 und OS2.0
- ROM20 benutzt die Shell oder ein eigenes CON:-Window zur Ein-
und Ausgabe. Daher ist insbesondere unter OS2.0 die Bedienung
recht komfortabel; es können wie in der Shell verschiedene
Fonts, Farben, Tastaturbelegungen usw. verwendet werden.
- ROM20 rechnet mit LONGREAL-Zahlen, daher 14-stellige Genauigkeit.
- ROM20 kennt neben +,-,*,/ auch den Potenzoperator ^
- ^ hat Vorrrang vor * und /, diese haben Vorrang vor + und -
2+3^2*4 = 2+((3^2)*4) = 38.0
- Alle wichtigen mathematischen Funktionen wie sin(), arcsin(),
exp(), fac() usw. sind implementiert.
- ROM20 kann mit Variablen rechnen. Diese Variablen können als
Textfile abgespeichert und wieder geladen werden.
Ausdrücke wie "sqrt(2.8*Geschwindigkeit)/Pi+sin(x2^7.91E-3
-Elektronenmasse)" können also berechnet werden.
- Das Ausgabeformat ist frei wählbar.
- Die Ausgabe kann zum Drucker oder in eine Datei kopiert werden.
- Statistische Funktionen wie Mittelwert oder Standardabweichung
stehen zur Verfügung.
- Auf jede Eingabe kann zusätzlich eine frei definierbare Formel
angewendet werden. Dadurch wird z.B. die Erstelliung von Werte-
tabellen sehr einfach.
- Das Programm kann von Shell und Workbench gestartet werden.
- Das Programm ist frei konfigurierbar. Die Konfiguration kann
abgespeichert werden und steht so beim nächsten Programmstart
sofort zur Verfügung.
- Das Programm ist nur ca. 38 kByte groß und residentfähig.
COPYRIGHT
---------
Dieses Programm ist KEIN Public Domain Programm! Alle Rechte liegen
beim Autor. Diese Version von ROM20 darf nur in Verbindung mit einer
unveränderten AMOK-Diskette verbreitet werden. Die Aufnahme von ROM20
auf eine andere Diskettenserie oder irgendein sonstiger Vertrieb
dieses Programms ist nur mit meiner schriftlichen Genehmigung
erlaubt. Insbesondere sind Modifikationen des Programms oder der
Dokumentation, der Abdruck oder die Übersetzung und jede andere
Vervielfältigung von Programm und Dokumentation untersagt.
Grundsätzlich darf für eine Diskette auf der sich ROM20 befindet nur
der Preis der Leerdiskette zuzüglich einer geringen Kopiergebühr
verlangt werden. (In der Regel kostet eine FD-Diskette DM 1.60 +
Porto) Der Autor behält sich das Recht vor, einzelnen Firmen oder
Personen das Recht auf Verbreitung dieses Produktes zu untersagen!
SHAREWARE
---------
Dieses Programm ist Shareware. Das heißt sie bekommen mit dieser Disk
die Vollversion des Programmes. Sie haben ca. zwei Wochen Zeit das
Programm ausgiebig zu testen. Sollte Ihnen das Programm gefallen und
sollten sie es auch weiterhin benutzen wollen, so müssen Sie mir die
Sharewaregebühr in Höhe von 10 DM oder 5 US-Dollar schicken oder auf
mein Girokonto Überweisen!
Meine Anschrift:
Stefan Salewski
Stolper Weg 3
D-2160 Stade
(Germany)
Mein Konto:
Stadt-Sparkasse Stade
Bankleitzahl 241 510 05
Kontonummer 823864
Wer das Programm sehr viel benutzt oder viel Geld hat kann mir auch
gerne 20 DM schicken. Wenn jemand momentan sehr wenig Geld hat reichen
auch 5 DM. Die Nutzung des Programms ohne Zahlung der Sharewaregebühr
ist illegal und entspricht der Nutzung von Raubkopien.
(Natürlich hätte ich statt des voll funktionsfähigen Programms auch
nur eine Demoversion veröffentlichen können. Die Vollversion wäre dann
bei mir oder einem Händler zu beziehen. Durch den dadurch verbundenen
Mehraufwand würde dann der Preis aber bei ca. 30 DM liegen!)
Starten des Programms
----------------------
ROM20 kann von der Workbench aus durch Doppelklick auf das Piktogramm
oder aus der Shell durch Eingabe des Programmnamens gestartet werden.
Das Programm braucht mindestens einen Stack von 14 kByte. Dieser Wert
sollte im Icon des Programmes eingetragen sein. Beim Start aus der
Shell muß man eventuell vor dem Starten des Programms den Stack mit
"Stack 14000" entsprechend erhöhen.
Ist das Programm aus der Shell gestartet worden, so benutzt es das
Shellfenster für seine Ein- und Ausgaben. Wird es von der Workbench
aus gestartet, so wird ein eigenes CON-Fenster geöffnet. Position und
Größe des Fensters sind in den ToolTypes des Icons festgelegt und
können verändert werden. Wer noch mit Kickstart 1.3 arbeitet kann in
den ToolTypes "Con:" durch "NewCon:" oder einen anderen Handler
ersetzen um in dem Eingabewindow die gleichen Funktionen wie in der
Shell nutzen zu können. ( Edieren der Eingabezeile, zurückholen der
letzten Eingabe durch "Cursor Up" usw.)
Bedienung
---------
Ist das Programm gestartet, kann man einen mathematischen Ausdruck
eintippen. Nach Betätigung der Returntaste wird er berechnet und
ausgegeben. Einige Beispiele für mögliche Eingaben:
1.23*sin(4.5)+Pi/epsilon
arcsin(3/2)-2.7E3^3.2
Die Ausdrücke dürfen folgendes enthalten:
Die mathematischen Operatoren +,-,*,/,^
Zahlenkonstanten wie 1.23E-5, 3.14, 2
Elementare Funktionen wie sin, exp, arctan
Klammern (),[],{}
Werte (engl. Values)
(Leerzeichen in mathematischen Ausdrücken sind nicht erlaubt.)
Werte (Variablen oder Konstanten)
---------------------------------
Werte ist der Oberbegriff für Konstanten und Variablen. Man kann jedem
Wort einen Wert zuweisen und dann damit rechnen. Die Wertzuweisung ist
sehr einfach: Man tippt den Namen, dann = oder := und schließlich den
nummerischen Ausdruck, der diesem Namen zugewiesen werden soll. Um
beispielsweise die Werte Pi und SekundenProTag zu definieren gibt man
ein:
Pi:=2*arcsin(1)
SekundenProTag=60*60*24
Nun kann man mit diesen Werten rechnen wie mit normalen Zahlen.
Wertzuweisungen haben die Form
<name> = <math. Ausdruck> [ ; Kommentar ]
<name> := <math. Ausdruck> [ ; Kommentar ]
Der Name darf fast alle über die Tastatur erreichbaren Zeichen
enthalten, die Operatoren +,-,*,/,^,:,= und Klammern sind allerdings
nicht erlaubt. Außerdem darf den Name nicht mit einer Ziffer beginnen.
Er darf aber Ziffern enthalten und auch mit einer Ziffer enden.
Natürlich darf man für Werte nicht Namen verwenden, die schon für
elementare Funktionen (sin, cos usw.) oder Kommandos (PrinterOn,
Quit usw.), vergeben sind.
Wird nur das Gleichheitszeichen für die Wertzuweisung benutzt, so wird
dieser Wert nicht abgespeichert. Das ist für unwichtige Werte sinnvoll.
Wird dagegen der Zuweisungsoperator ":=" benutzt, so wird dieser Wert
abgespeichert und kann beim nächsten Programmstart wieder verwendet
werden. (Die Werte werden erst abgespeichert wenn man das Kommando
SaveValues gibt, die Kommandos werden weiter unten erklärt.) Die
Kommentare sind optional, man kann sie z.B. verwenden um zu notieren,
auf welche Einheiten ein Wert bezogen ist usw. (Links und rechts
von ":=", "=" und ";" dürfen beliebig viele Leerzeichen stehen.)
Memory-Funktion
---------------
Es gibt eine spezielle Variable mit dem Namen "#". Dieses Doppelkreuz
bekommt jeweils das letzte Resultat zugewisen. So kann man bei
Kettenrechnungen mit dem letzten Ergebnis sofort weiterechnen ohne es
erneut eintippen zu müssen. Natürlich sollte man den Namen "#" nicht
verwenden, um irgendwelche Zahlenwerte zu speichern, da dieser Wert ja
bei jeder Rechnung verändert wird.
Fehlermeldungen:
----------------
Tritt irgendein Fehler auf, so wird darauf hingewiesen, anderenfalls
wird nur das Ergebnis ausgegeben. Enthält der eingegebene Ausdruck
undefinierte Werte, Klammerfehler oder anderen Unsinn, so bekommt man
die Meldung "Error in Compile()". Auch bei der Berechnung können
natürlich Fehler auftreten, beispielsweise eine Division durch Null
oder eine Bereichüberschreitung (Ergebnis > MAX(LONGREAL)). Auch hier
bekommt man eine Fehlermeldung, aus der man in der Regel erkennen kann
um was für einen Fehler es sich handelt.
Operatoren
----------
Es existieren 5 mathematische Operatoren:
Symbol Bedeutung Priorität
----------------------------
+ Plus 1
- Minus 1
* Mal 2
/ Durch 2
^ Hoch 3
Mal und Durch hat also Vorrang vor Plus und Minus. Der Potenzoperator
^ hat Vorrang vor den übrigen vier Operatoren. (Dies ist allgemein
üblich und unter den Begriff "Punkt- vor Strichrechnung" bekannt.
Einige Beispiele:
2+3*4 = 14
2+3*4^2 = 50
Um andere Prioritäten festzulegen können selbstverständlich Klammern
benutzt werden. Neben () können auch [] und {} benutzt werden.
Beispiel:
(2+3)*4 = 20
(3+5)^2 = 64
Das Weglassen des Multiplizieroperators ist nicht erlaubt. Man darf
also statt 4*Pi*e0 nicht 4Pie0 schreiben. (Manchmal findet man in
Büchern Ausdrücke wie "1/4 Pi e0". Gemeint ist damit "1/(4*Pi*e0)".
Dem weggelassenem Multiplikationsoperatoren wird also eine höhere
Priorität als dem Divisionsoperator / zugeordnet. Da das Weglassen von
Operatoren nicht erlaubt ist und Mal und Durch gleiche Priorität haben
muß man also "1/(4*pi*e0)" schreiben.)
Kommandos
---------
Statt einen mathematischen Ausdruck einzutippen kann man auch ein
Kommando eingeben um beispielsweise die Anzahl der Nachkommastellen
festzulegen oder die Ausgaben auf dem Drucker auszugeben. Es
existieren momentan ca. 40 Kommandos. Die meisten Kommandos bestehen
nur aus einem Wort wie beispielsweise "PrinterOn", andere benötigen
noch ein weiteres Argument, beispielsweise die Anzahl der
Nachkommastellen. Groß- und Kleinschreibung wird unterschieden, man
muß also "PrinterOn" eingeben, "printeron" oder "PRINTERON" führen zu
einer Fehlermeldung. Konnte ein Kommando ausgeführt werden, so erfolgt
keine Meldung und das Programm erwartet sofort die nächste Eingabe.
Anderenfalls wird eine entsprechende Fehlermeldung ausgegeben.
Jetzt zu den Kommandos im einzelnen:
Quit
----
Beendet das Programm. Statt Quit kann man auch einfach einen Punkt
eingeben.
Help
----
Gibt einen kurzen Hilfstext aus. Statt Help kann man auch ? benutzen.
ShowCommands
------------
Listet alle möglichen Kommandos auf.
ShowFunctions
-------------
Listet alle bekannten elementaren Funktionen wie sin() usw. auf.
Auf diese Funktionen wird weiter unten noch näher eingegangen.
ShowValues
----------
Listet alle momentan vorhandenen Werte (Variablen bzw. Konstanten) auf.
PrinterOn
---------
Gibt fortan alle Ergebnisse auf dem Drucker aus. Bevor man dieses
Kommando benutzt sollte man den Drucker eingeschaltet haben. Bei der
Druckerausgabe wird die mit dem Workbenchprogrammen "Printer" bzw.
"Preferences" eingestellte Druckbreite benutzt. Diese Breite
(PrintRightMargin-PrintLeftMargin) wird ebenfalls bei Ausgaben in eine
Datei verwendet.
PrinterOff
----------
Die Ergebnisse werden nicht mehr zum Drucker geschickt.
OpenFile <name>
---------------
Die Ergebnisse werden fortan in die Datei mit dem Namen name
geschrieben. Für diese Datei wird das gleiche Format wie für die
Druckerausgabe benutzt.
CloseFile
---------
Die zuvor mit OpenFile geöffnete Datei wird geschlossen,
die Ergebnisse werden nicht mehr in diese Datei geschrieben.
PrintAll
--------
Dieses Kommando ist von Bedeutung, wenn die Ergebnisse zum Drucker
geschickt oder in eine Datei geschrieben werden. Es bewirkt, daß vor
der Ausgabe des Ergebnisses der eingegebene Ausdruck nochmal
wiederholt wird. Dadurch hat man auf dem Papier später nicht nur die
Ergebnisse stehen, sondern auch, was eingegeben wurde.
PrintResult
-----------
Das Gegenteil von PrintAll. Es wird nur das Ergebnis ausgegeben.
TotalDigits <n>
-----------
Ergebnisse werden mit n Gesamtziffern angezeigt. Die
Zahl n muß zwischen 1 und 14 liegen.
DigitsBehindPoint <n>
-----------------
Es werden n Nachkommastellen angezeigt. Bei naturwissenschaftlichen
Rechnungen wird man in der Regel TotalDigits und DigitsBehindPoint
auf den gleichen Wert, z.B. auf acht, setzen um immer acht Stellen
angezeigt zu bekommen. Wenn man mit Geld rechnet ist es dagegen
sinnvoll DigitsBehindPoint auf zwei zu setzen um nicht Bruchteile
einen Pfennigs angezeigt zu bekommen. Die Anzahl der Nachkommastellen
ist natürlich durch die Zahl der Gesamtstellen eingeschränkt und muß
zwischen 0 und 14 liegen.
ExponentOn
----------
Ergebnisse werden in der Exponentialdarstellung ausgegeben.
Statt 1234.56 also 1.23456E3
ExponentOff
-----------
Die Exponentialdarstellung wird nur benutzt, wenn die Zahl zu groß für
die normale Darstellung ist.
Format <Gesamtstellen.NachkommastellenE>
------
Oft muß man die Gesamtstellen, Nachkommastellen und die
Zahlendarstellung (Normal- oder Exponentialdarstellung) gleichzeitig
verändern. Um dies zu vereinfachen gibt es den Befehl Format. Die
erste Zahl, die dem Kommando Format folgt, gibt die Gesamtziffernzahl
an. Dann folgt ein Punkt und die Zahl der Nachkommastellen. Folgt
zusätzlich noch ein E, so wird die Exponentialdarstellung benutzt,
anderenfalls nicht. Die Zahl vor oder hinter dem Punkt kann auch
weggelassen werden, dann wird die alte Einstellung beibehalten.
Einige Beispiele:
Format 8.2
Es werden maximal 8 Gesamtstellen und 2 Nachkommastellen angezeigt.
Format 12.14
Es werden 12 Gesamtstellen und 11 Nachkommastellen angezeigt. Ja 11,
denn es ist immer mindestens eine Vorkommastelle vorhanden, und die
Zahl der Gesamtstellen ist ja hier auf 12 beschränkt.
Format 8E
Es werden 8 Gesamtstellen in exponentieller Darstellung angezeigt.
Wie gesagt, den Befehl Format braucht man nicht zu verwenden, statt
dessen kann man auch TotalDigits, DigitsBehindPoint und ExponentOn
bzw. ExponentOff benutzen.
AutoExpoOn
----------
Dieses Kommando bewirkt, daß bei Ergebnissen, die betragsmäßig kleiner
als eins sind automatisch die Exponentialdarstellung benutzt wird.
Statt 0.0123456 erhält man also 1.23456xxE-2 als Ergebnis. Dadurch ist
sichergestellt, daß das Ergebnis immer mit so vielen Stellen angezeit
wird, wie man mit dem Kommando TotalDigits festgelegt hat.
Insbesondere weiß man so immer, ob es sich bei dem Ergebnis wirklich
um Null oder nur um eine sehr kleine Zahl handelt.
AutoExpoOff
-----------
Zahlen, die Betragsmäßig kleiner als eins sind werden in normaler
Darstellung angezeigt. (Sofern nicht vorher der Befehl ExponentOn
gegeben wurde.) Bei zwei Nachkommastellen erhält man also als Ergebnis
0.00 statt z.B. 1.23E-3 . Wenn man z.B. mit Geldbeträgen rechnet ist
dies ok, da einen Bruchteile eines Pfennigs nicht interessieren.
LeftJustify
-----------
Das Ergebnis wird linksbündig ausgerichtet. Das bedeutet daß jeweils
die ersten Ziffern der Ergebnisse übereinander stehen.
RightJustify
------------
Das Ergebnis wird rechtsbündig ausgerichtet. Die letzten Ziffern der
Ergebnisse stehen jeweils übereinander. Beim Rechnen mit Geldbeträgen
und zwei Nachkommastellen stehen die Pfennige also übereinander.
SetFillChar <x>
---------------
Als Füllzeichen wird das Zeichen x verwendet. Das ist nur von
Bedeutung, wenn PrintAll gewäht ist. Mit dem Füllzeichen wird der Raum
zwischen der Eingabe und dem ausgegebenen Resultat ausgefüllt. Will
man das Leerzeichen als Füllzeichen benutzen, so muß man " " statt des
Leerzeichens eingeben.
Beispiel:
SetFillChar .
Der Punkt wird als Füllzeichen verwendet, das verbessert die
Lesbarkeit des Ausdrucks.
SetFillChar
Kein Füllzeichen verwenden, das Ergebnis wird direkt hinter die
Eingabe geschrieben.
SetFillChar " "
Leerzeichen verwenden.
SaveConfig [fileName]
---------------------
Hiermit kann man das momentane Ausgabeformat abspeichern. Wird kein
Filename angegeben, so wird der Name "s:ROM20.config" benutzt.
LoadConfig [fileName]
---------------------
Lädt die Einstellungen wieder ein. Wird kein Filename angegeben, so
wird ebenfalls der Name "S:ROM20.config" verwendet. Existiert im
Verzeichnis S: die Datei ROM20.config, so wird diese beim
Programmstart automatisch geladen, anderenfalls werden die im Programm
festgelegten Vorgabeeinstellungen benutzt.
SaveValues [filename]
---------------------
Mit diesem Kommando werden alle momentan vorhandenen Werte, also
Konstanten und Variablen, in eine Datei abgespeichert. Wird kein
Dateiname angegeben, so wird die Vorgabe "S:ROM20.values" benutzt. Es
werden nur die Werte abgespeichert, die entweder vorher eingelesen
wurden, oder denen ein Wert mit dem Zuweisungszeichen ":=" zugewiesen
wurde. Werte, denen ein Wert mit dem einfachen Gleichheitzeichen
zugewiesen wurde, werden nicht abgespeichert.
Nach den Anweisungen
Pi := 2*arcsin(1)
piViertel = Pi/4
wird also der Wert Pi in die Datei abgespeichert, piViertel aber
nicht. Dadurch wird verhindert, daß irgendwelche unbedeutenden
Hilfswerte, deren Bedeutung man doch bald vergessen hat, in der Datei
Platz wegnehmen. Die Datei ist eine Textdatei, die mit einem ASCII-
Texteditor verändert werden kann, so kann man Werte löschen,
korrigieren usw. Jede Zeile dieser Datei definiert einen Wert und
sieht folgendermaßen aus:
<name> = <wert> ; [ Kommentar ]
Beispiel:
Lichtgeschwindigkeit = 2.9979E8 ; in m/s
Die Datei darf bis zu 2048 Zeilen haben, eine Zeile darf bis zu 256
Zeichen lang sein.
LoadValues [fileName]
---------------------
Lädt die Werte aus der Datei ein, so daß mit ihnen fortan gerechnet
werden kann. Wird keine Datei angegeben, so wird der Vorgabename
"S:ROM20.values" benutzt. Existiert die Datei ROM20.Values im
Verzeichnis S:, so wird diese beim Programmstart automatisch
eingelesen. Es ist praktisch, wenn man in dieser Datei einige oft
benötigte Werte definiert hat, so daß man mit ihnen jederzeit Rechnen
kann. Seltener benutzte Werte kann man eventuell in einer separaten
Datei abspeichern und bei Bedarf laden. So kann man z.B. auch
spezielle Dateien anlegen, die etwas die Kalorienzahl oder Preise von
Lebensmitteln enthalten. LoadValues löscht nicht die bereits
vorhandenen Werte. Es werden nur neue Werte dazugeladen und
eventuell existierende überschrieben.
DisposeAllValues
----------------
Diese Anweisung löscht alle vorhandenen Werte.
RemoveValue <name>
------------------
Löscht den angegebenen Wert.
FormulaOn <formel>
------------------
Oft muß man eine bestimmte Formel einer Variablen mit verschiedenen
Werten wiederholt durchrechnen. Statt in der Formel nun jedesmal den
Wert der Variablen an allen Stellen, an denen sie auftaucht, zu
verändern, kann man FormulaOn <formel> benutzen. "formel" ist ein
beliebiger mathematischer Ausdruck, in dem die Variable "x" vorkommt.
Nachdem man das Kommando FormulaOn <formel> eingegeben hat, wird jede
folgende Eingabe berechnet, und dann der Variablen x zugewiesen.
Darauf wird die Formel berechnet, und zum Schluß das Resultat dieser
Formel ausgegeben.
Ein ganz einfaches Beispiel: Wir wollen die dritte Potenz einiger
Zahlen berechnen:
FormulaOn x*x*x
Eingabe Ergebnis
2 8
8.2-5.2 27
0.5 0.0125
2+3 125
Interessant wird das natürlich erst, wenn man kompliziertere
Funktionen berechnen will, beispielsweise will man eine Wertetabelle
fÜr ein Polynom anlegen. Als Variablenname wird immer "x" benutzt. Man
hätte natürlich eine freie Wahl des Variablennames zulassen können,
aber daß hätte die Sache nur unnötig kopliziert. Bedenken muß man
aber, daß die Variable x durch das Benutzen einer Formel verändert
wird.
FormulaOff
----------
Die Formel wird nicht mehr benutzt, man erhält als Ergebnis
wieder das Resultat der Eingabe.
Info
----
Dieses Kommando gibt eine Übersicht über alle Einstellungen. So wird
z.B. das Zahlenformat angegeben, und es wird ausgegeben ob momentan
eine Formel auf die Eingaben angewendet wird oder nicht. Außerdem
werden einige statistische Angaben angezeigt. Wichtig ist die erste
Zeile. Hier sollte normalerweise "Status: All OK" stehen. Steht dort
etwas anderes, ist ein schwerwiegender Fehler aufgetreten und es ist
am besten das Programm zu beenden und neu zu starten.
Dieses Programm besitzt auch einige statistische Funktionen wie
Mittelwert, Varianz usw. Gibt man eines der folgenden Kommandos wird
dieser statistische Wert jeweils ausgegeben und gleichzeitig der
Variablen "#" zugewiesen, so daß man mit diesem Wert dann sofort
weiterechnen kann.
SumOfInputs
-----------
Liefert die Summe aller Ergebnisse.
StatisticsCounter
-----------------
Ein Zähler, der einem sagt wie viele Ergebnisse man
bereits erhalten hat.
MeanValue
---------
Mittelwert aller Ergebnisse. Dies entspricht
SumOfInputs/StatisticsCounter
SumOfSquares
------------
Summe aller quadrierten Ergebnisse.
Variation
---------
Varianz aller Ergebnisse.
StandartDeviation
-----------------
Standardabweichung oder Streuung der Ergebnisse.
Das ist gerade die Quadratwurzel der Varianz.
ResetStatistics
---------------
Setzt alle statistischen Werte zurück, so als
ob das Programm gerade erst gestartet worden wäre.
StatisticsUndo
--------------
Der Wert der letzten Eingabe wird für die statistischen
Berechnungen ignoriert. Das ist sinnvoll, wenn man sich vertippt hat.
StatisticsOff
-------------
Es werden die Statistikwerte eingefroren. Das ist nützlich, wenn man
statistische Berechnungen begonnen hat, und mittendrin einige
Nebenrechnungen machen will, die natürlich nicht in die statistischen
Berechnungen eingehen dürfen.
StatisticsOn
------------
Ab jetzt werden die statistischen Berechnungen wieder fortgeführt.
Bei Programmstart ist die Statistik immer eingeschaltet.
Elementare mathematische Funktionen
-----------------------------------
In wesentlichen handelt es sich hierbei um bekannte Funktionen, die
von dem mathematischen Koprozessor oder der MathIEEEDoubTrans.library
berechnet werden. Argumente oder Ergebnisse von Winkelfunktionen wie
sin() oder arctan() sind immer auf Radiant bezogen. Will man z.B. den
Sinus von 30 Grad berechnen, so muß man "sin(DegToRad(30))" eingeben.
DegToRad()
----------
Wandelt einen in Grad angegebenen Winkel in Radiant um. Das gleiche
erreicht man durch "*Pi/180"
RND()
-----
Produziert Zufallszahlen. Das Argument muß eine GANZE Zahl zwischen 1
und MAX(INTEGER) sein. RND(n) liefert eine Zufallszahl zwischen 0 und
(n-1). (RND(6)+1) simuliert also einen Würfel.
RadToDeg()
----------
Wandelt einen in Radiant angegebenen Winkel in Grad um.
"RadToDeg(x)" entspricht also "x/Pi*180"
abs()
-----
Ergibt den Absolutwert oder Betrag des Argumentes.
arccos()
--------
Die Arcus-Cosinus-Funktion. Inverse Funktion des Cosinus.
Der Betrag des Argumentes darf nicht größer als eins sein.
arcsin()
--------
Die Arcus-Sinus-Funktion. Inverse Funktion des Sinus.
Der Betrag des Argumentes darf nicht größer als eins sein.
arctan()
--------
Die Arcus-Tanges-Funktion. Inverse Funktion des Tangens.
artanh()
-------
Die Arcus-Tangens-Hyperbolicus-Funktion. Inverse Funktion des Tanges-
Hyperbolicus.
ceil()
------
Liefert die nächste ganze Zahl die größer oder gleich dem Argument
ist. Libraryfunktion, Name kommt von ceiling, engl. für Decke.
cos()
-----
Cosinus
cosh()
------
Cosinus-Hyperbolicus
entier()
--------
Liefert die nächste ganze Zahl, die kleiner oder gleich dem Argument
ist. Die Berechnung erfolgt über die OBERON-Funktion ENTIER(), daher
muß der Betrag des Arguments kleiner als MAX(LONGINT) sein. Eigentlich
sollte man lieber floor() benutzen, da man dann diese
Bereicheinschränkung nicht beachten muß.
exp()
-----
Exponentialfunktion zur Basis e=2.7...
fac()
-----
Fakultät. Das Argument muß eine ganze Zahl zwischen 0 und 170 sein.
floor()
-------
Liefert die nächste ganze Zahl kleiner oder gleich dem Argument.
Libraryfunktion, Name kommt von floor engl. Boden, siehe auch ceil()
id()
----
Identität. id(x)=x
int()
-----
Liefert die nächste ganze Zahl, die dichter bei Null liegt als das
Argument oder mit dem Argument identisch ist.
jump()
------
(Heaviside'sche) Sprungfunktion. Liefert 1 für Argumente die größer
als Null sind, sonst Null. Diese Funktion ist recht nützlich um
bestimmte Stellen eines Funktionsgraphen auszublenden. In der
Elektronik kommt sie unter dem namen E() vor, ich habe sie jump()
genannt um Verwechslungen mit der Exponentialfunktion zu verhindern
und um den Namen "E" für Zahlenwerte freizuhalten.
ln()
----
Der natürliche Logarithmus zur Basis e=2.7...
log()
-----
Der Zehnerlogarithmus (dekadischer Logarithmus) zur Basis 10.
log() ist identisch mit log10()
log2()
------
Logarithmus zur Basis 2.
round()
-------
Rundung auf die nächste ganze Zahl.
round(x) entspricht floor(x+0.5).
sin()
-----
Sinusfunktion. Argumente sind wie bei allen Winkelfunktionen auf
Radiant bezogen.
sinh()
------
Sinus-Hyperbolicus
sqr()
-----
Quadrat. sqr(x)=x*x
sqrt()
------
Quadratwurzel. sqrt(x*x)=abs(x). Das Argument darf nicht negativ sein.
tan()
-----
Tangens.
tanh()
------
Tangens Hyperbolicus
tentox()
--------
Ergibt 10^x
twotox()
--------
Ergibt 2^x
Fehler
------
Natürlich kann ich nicht garantieren, daß die Berechnungen des
Programmes in allen Fällen richtig sind. Auch bin ich nicht
verantwortlich für irgendwelche Schäden, die durch Verwendung dieses
Programms oder dessen Berechnungen entstehen. Sie haben ja, wie oben
gesagt, zwei Wochen Zeit um das Programm ausführlich zu testen bevor
sie die Sharewaregebühr bezahlen müssen. Die Zahlung der
Sharewaregebühr gibt Ihnen nicht das Recht auf irgendwelche
zukümftigen Versionen des Programms, auch wenn sich herausstellen
sollte, daß das Programm Fehler enthält. Sie bezahlen die
Sharewaregebühr für die Ihnen vorliegende und von Ihnen getestete
Programmversion! Ob es von Fehlern bereinigte oder erweiterte
Versionen des Programmes (eventuell Pulldown-Menüs, Funktionsplotter,
nummerische Integration usw.) geben wird hängt natürlich davon ab,
wie viele Personen die Sharewaregebühr bezahlen. Solange ich nicht
wenigstens meine Unkosten mit der Sharewaregebühr decken kann wird es
garantiert keine erweiterte Version geben!
Stefan Salewski, Stade, den 24.04.92